package br.com.locanet.bean.impl;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table;

import br.com.locanet.bean.IEntity;

@Entity
@Table(name="pessoas")
@Inheritance(strategy=InheritanceType.JOINED)
public class Pessoa implements IEntity{
	private static final long serialVersionUID = 1L;
 
	private Long id;
	private String nome;	
	private String login;
	private String senha;
	private Integer status;
	
	@Id
	@GeneratedValue(strategy=GenerationType.TABLE)
	@Column(name="id_pessoa")
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	@Column(name="nome_pessoa")
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	@Column(name="login_pessoa",unique=true)
	public String getLogin() {
		return login;
	}
	public void setLogin(String login) {
		this.login = login;
	}
	@Column(name="senha_pessoa")
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
	@Column(name="status_pessoa")
	public Integer getStatus() {
		return status;
	}
	public void setStatus(Integer status) {
		this.status = status;
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (obj instanceof Pessoa && obj != null){
			Pessoa pes = (Pessoa) obj;
			return (this.getClass().equals(pes.getClass()))&&((getId().equals(pes.getId())||
						(getLogin().equals(pes.getLogin()))));
		}
		return false;
	}
}
